## Animal is-a object (yet, sort of confusing) look at the extra credit
class Animal(object):
    pass

## Dog is-a animal
class Dog(Animal):

    def __init__(self, name):
        ## 把name 参数赋值给self，每个Dog对象都有一个名字
        self.name = name

##  cat is-a animal
class Cat(Animal):

    def __init__(self, name):
        ## 把name参数赋值给self,每个cat对象都有一个名字
        self.name = name
## person is-a object
class Person(object):

    def __init__(self,name):
        ## 被参数name赋值给self,每个person都有名字
        self.name = name
        ## Person has-a pet of some kind
        self.pet =None

## Employee is-a person
class Employee(Person):

    def __init__(self, name, salary):    # 构造函数
        ## ?? hmm what is this strange magic?
        super(Employee, self).__init__(name)
        ## 把参数salary薪水赋值给self,每个employee 都有薪水。
        self.salary = salary

## Fish is-a object
class Fish(object):
    pass

## salmon is-a Fish
class Salmon(Fish):
    pass

## Halibut is-a Fish
class Halibut(Fish):
    pass

## rover is-a Dog
rover = Dog("Rover")

## satan is-a cat
satan = Cat("Satan")

## mary is-a person
mary = Person("Mary")

## mary 有一条名为satan的猫
mary.pet = satan

## frank的薪水为120000
frank = Employee("Frank", 120000)

## frank有一条名为rover的狗
frank.pet = rover

## flipper 是fish的特征 
flipper = Fish()

## ??
crouse =Salmon()

## ??
harry = Halibut()

























